package persistencia.dao;


import org.hibernate.Query;
import persistencia.hbt.HibernateUtil;
import bean.EntidadPersistente;
import bean.Rodamiento;

public class RodamientoDAO extends EntidadPersistenteDAO
{
	private static RodamientoDAO instancia = null;
	
	public static RodamientoDAO getInstancia(){
		if(instancia == null)
			instancia = new RodamientoDAO();
		
		if (session == null)
			session = HibernateUtil.getSession();
		
		return instancia;
	}
	
	public Rodamiento buscar(EntidadPersistente entidad)
	{
		Rodamiento rod = (Rodamiento) entidad;
		
		if (rod.getId() != null)
			return (Rodamiento) super.buscar(rod);
		else if (rod.getCodigo() != null)
			return this.buscar(rod.getCodigo(), rod.getSufijo());
		
		return null;
	}
	
	private Rodamiento buscar(String codigo, String sufijo){
		Query query = session.createQuery("from Rodamiento r where r.codigo = :var1 and r.sufijo = :var2");
		query.setString("var1", codigo);
		query.setString("var2", sufijo);
		Rodamiento r = (Rodamiento) query.setFirstResult(0).setMaxResults(1).uniqueResult();

		return r;
	}
}
